/*
 * Copyright 1999-2018 Alibaba Group Holding Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// package com.alibaba.druid.util;

// import com.alibaba.druid.DbType;
#pragma once

#include <string>
#include "../DbType.h"

class JdbcConstants {
  public :
    static DbType JTDS ;

    static string_ptr  MOCK;

    static DbType HSQL;

    static DbType DB2;

    static string_ptr  DB2_DRIVER ; // Type4
    static string_ptr  DB2_DRIVER2 ; // Type2
    static string_ptr  DB2_DRIVER3 ; // Type3

    static DbType POSTGRESQL ;
    static string_ptr  POSTGRESQL_DRIVER ;

    static DbType SYBASE;

    static DbType SQL_SERVER ;
    static string_ptr  SQL_SERVER_DRIVER ;
    static string_ptr  SQL_SERVER_DRIVER_SQLJDBC4 ;
    static string_ptr  SQL_SERVER_DRIVER_JTDS ;

    static DbType ORACLE ;
    static string_ptr  ORACLE_DRIVER ;
    static string_ptr  ORACLE_DRIVER2;

    static DbType ALI_ORACLE ;
    static string_ptr  ALI_ORACLE_DRIVER;

    static DbType MYSQL;
    static string_ptr  MYSQL_DRIVER;
    static string_ptr  MYSQL_DRIVER_6 ;
    static string_ptr  MYSQL_DRIVER_603 ;
    static string_ptr  MYSQL_DRIVER_REPLICATE ;

    static string_ptr  MARIADB ;
    static string_ptr  MARIADB_DRIVER ;

    static DbType TIDB ;
    static string_ptr  TIDB_DRIVER ;

    static DbType DERBY;

    static string_ptr  HBASE ;

    static DbType HIVE;
    static string_ptr  HIVE_DRIVER ;

    static DbType H2 ;
    static string_ptr  H2_DRIVER ;

    static DbType DM;
    static string_ptr  DM_DRIVER ;

    static DbType KINGBASE;
    static string_ptr  KINGBASE_DRIVER ;
    static string_ptr  KINGBASE8_DRIVER;

    static DbType GBASE ;
    static string_ptr  GBASE_DRIVER ;

    static DbType XUGU;
    static string_ptr  XUGU_DRIVER;

    static DbType OCEANBASE;
    static DbType OCEANBASE_ORACLE ;
    static string_ptr  OCEANBASE_DRIVER ;
    static string_ptr  OCEANBASE_DRIVER2 ;

    static DbType INFORMIX ;

    /**
     * 阿里云odps
     */
    static DbType ODPS ;
    static string_ptr  ODPS_DRIVER ;

    static string_ptr  TERADATA;
    static string_ptr  TERADATA_DRIVER ;

    /**
     * Log4JDBC
     */
    static string_ptr  LOG4JDBC;
    static string_ptr  LOG4JDBC_DRIVER ;

    static string_ptr  PHOENIX ;
    static string_ptr  PHOENIX_DRIVER ;
    static DbType ENTERPRISEDB;
    static string_ptr  ENTERPRISEDB_DRIVER ;

    static string_ptr  KYLIN ;
    static string_ptr  KYLIN_DRIVER;

    static string_ptr  SQLITE ;
    static string_ptr  SQLITE_DRIVER;

    static string_ptr  ALIYUN_ADS ;
    static DbType ALIYUN_DRDS ;

    static string_ptr  PRESTO ;
    static string_ptr  PRESTO_DRIVER ;

    static string_ptr  TRINO ;
    static string_ptr  TRINO_DRIVER ;

    static string_ptr  ELASTIC_SEARCH;

    static string_ptr  ELASTIC_SEARCH_DRIVER ;

    static DbType CLICKHOUSE ;
    static string_ptr  CLICKHOUSE_DRIVER;

    static string_ptr  KDB ;
    static string_ptr  KDB_DRIVER ;

    /**
     * Aliyun PolarDB
     */
    static DbType POLARDB ;
    static string_ptr  POLARDB_DRIVER ;
    /**
     * GreenPlum
     */
    static DbType GREENPLUM;
    static string_ptr  GREENPLUM_DRIVER ;

    /**
     * oscar
     */
    static DbType OSCAR ;
    static string_ptr  OSCAR_DRIVER ;

    static DbType TYDB;
    static string_ptr  TYDB_DRIVER;
};
